package main

import "fmt"

func main()  {
	str := "abc"

	//用for输出每一个字符
	for i := 0;i < len(str);i++ {
		fmt.Printf("str[%d] = %c\n", i, str[i])
	}

	//使用for 结合 range写法,他有两个返回值，第一个数元素下标，第二个是这个下标对应的字符
	str = "def"
	for b, data := range str  {
		fmt.Printf("str[%d] = %c\n", b, data)
	}

	//也可以不使用第二个返回值,只有一个变量接受range返回值时，第二个返回值默认丢弃，也就是只返回字符下标，不返回这个下标对应的字符
	str = "ghi"
	for c := range str{
		fmt.Printf("str[%d] = %c\n", c, str[c])
	}

	//上边的写法可以用匿名变量来替代
	str = "jkl"
	for d, _ := range str{
		fmt.Printf("str[%d] = %c\n", d, str[d])
	}
}
